

import flash.events.Event;
import flash.events.EventDispatcher;
import flash.events.IEventDispatcher;
import mx.core.IPropertyChangeNotifier;
import mx.events.PropertyChangeEvent;
import mx.utils.ObjectProxy;
import mx.utils.UIDUtil;

import close.kenny.shell.view.*;

class BindableProperty
    implements flash.events.IEventDispatcher
{
	/*
	 * generated bindable wrapper for property windowList (public)
	 * - generated setter
	 * - generated getter
	 * - original public var 'windowList' moved to '_1862305966windowList'
	 */

    [Bindable(event="propertyChange")]
    public function get windowList():Array
    {
        return this._1862305966windowList;
    }

    public function set windowList(value:Array):void
    {
    	var oldValue:Object = this._1862305966windowList;
        if (oldValue !== value)
        {
            this._1862305966windowList = value;
           if (this.hasEventListener("propertyChange"))
               this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "windowList", oldValue, value));
        }
    }

	/*
	 * generated bindable wrapper for property taskButtonList (public)
	 * - generated setter
	 * - generated getter
	 * - original public var 'taskButtonList' moved to '_189394347taskButtonList'
	 */

    [Bindable(event="propertyChange")]
    public function get taskButtonList():Array
    {
        return this._189394347taskButtonList;
    }

    public function set taskButtonList(value:Array):void
    {
    	var oldValue:Object = this._189394347taskButtonList;
        if (oldValue !== value)
        {
            this._189394347taskButtonList = value;
           if (this.hasEventListener("propertyChange"))
               this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "taskButtonList", oldValue, value));
        }
    }


    //    IEventDispatcher implementation
    //
    private var _bindingEventDispatcher:flash.events.EventDispatcher =
        new flash.events.EventDispatcher(flash.events.IEventDispatcher(this));

	/**
	 * @inheritDoc
	 */
    public function addEventListener(type:String, listener:Function,
                                     useCapture:Boolean = false,
                                     priority:int = 0,
                                     weakRef:Boolean = false):void
    {
        _bindingEventDispatcher.addEventListener(type, listener, useCapture,
                                                 priority, weakRef);
    }

	/**
	 * @inheritDoc
	 */
    public function dispatchEvent(event:flash.events.Event):Boolean
    {
        return _bindingEventDispatcher.dispatchEvent(event);
    }

	/**
	 * @inheritDoc
	 */
    public function hasEventListener(type:String):Boolean
    {
        return _bindingEventDispatcher.hasEventListener(type);
    }

	/**
	 * @inheritDoc
	 */
    public function removeEventListener(type:String,
                                        listener:Function,
                                        useCapture:Boolean = false):void
    {
        _bindingEventDispatcher.removeEventListener(type, listener, useCapture);
    }

	/**
	 * @inheritDoc
	 */
    public function willTrigger(type:String):Boolean
    {
        return _bindingEventDispatcher.willTrigger(type);
    }

}
